package 力扣;

/**
 给定一个正整数?n，生成一个包含 1 到?n2?所有元素，且元素按顺时针顺序螺旋排列的正方形矩阵。

 示例:

 输入: 3
 输出:
 [
 [ 1, 2, 3 ],
 [ 8, 9, 4 ],
 [ 7, 6, 5 ]
 ]
 */

public class _59螺旋矩阵_II {
    public int[][] generateMatrix(int n) {
        int[][] res=new int[n][n];
        int count=1;
        int up=0,down=n-1;
        int left=0,right=n-1;
        while(up<=down && left<=right){ //判断需要几圈
            for(int i=left;i<=right;i++)
                res[up][i]=count++;
            up++;
            for(int i=up;i<=down;i++)
                res[i][right]=count++;
            right--;
            for(int i=right;right>=left&&i>=left;i--)
                res[down][i]=count++;
            down--;
            for(int i=down;down>=up&&i>=up;i--)
                res[i][left]=count++;
            left++;
        }
        return res;

    }

}
